﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using System.Collections;
using Tibet.Logica;

namespace Tibet.Pruebas
{


    ///<summary>
    /// Pruebas Unitarias para el caso de uso Modificar Usuario
    /// </summary>
    
    [TestFixture]
    public class ModificarUsuario
    {

        /// <summary>
        /// Prueba Unitaria que se encarga de probar que el email y el alias solo le pertenezca
        /// a un usuario
        /// </summary>
        [TestCase]
        public void TestValidarDatosRepetidos()
        {

            /// Datos usuario prueba
            Usuario pruebaUsuario = new Usuario();
            pruebaUsuario.DatosUsuario.Id = 1;
            pruebaUsuario.DatosUsuario.Email = "email@email.com";
            pruebaUsuario.Login.Alias = "email";
            /// Datos usuario prueba

            //Pregunta si hay cero usuarios con el mismo email o alias pero diferente ID
            Assert.AreEqual(pruebaUsuario.ExisteUsuario(), 0);
            
        }


        /// <summary>
        /// Prueba Unitaria que se encarga de probar que el usuario a modificar se haya cambiado
        /// efectivamente en la base de datos
        /// </summary>
        [TestCase]
        public void TestModificacionExitosa()
        {

            /// Datos usuario prueba
            Usuario pruebaUsuario = new Usuario();
            pruebaUsuario.DatosUsuario.Id = 1;
            pruebaUsuario.DatosUsuario.Email = "email@email.com";
            pruebaUsuario.Login.Alias = "email";
            /// Datos usuario prueba

            Usuario userAuxiliar = new Usuario();

            ///Contulta en la base de datos
            userAuxiliar = userAuxiliar.ConsultarUsuario(pruebaUsuario);

            //Pregunta si hay cero usuarios con el mismo email o alias pero diferente ID
            Assert.IsInstanceOf(typeof(Usuario),userAuxiliar);

        }


    }


}
